package proyectoX.src.fabricas;

import javax.swing.ImageIcon;
import javax.swing.JLabel;

import proyectoX.src.aplicacion.Nivel;
import proyectoX.src.armas.laser;
import proyectoX.src.armas.laserPequeno;
import proyectoX.src.entidades.Principal;
import proyectoX.src.entidades.exploradora;

/**
 * Fábrica de íconos correspondiente a la nave exploradora.
 *
 */
public class FactoryExploradora extends AbstractFactoryNaves {

	/**
	 * Constructor default. 
	 */
	public FactoryExploradora() {
		super();
	}
	
	@Override
	/**
	 * Crea la nave exploradora con los datos suministrados por parámetro.
	 * @param x Posición x.
	 * @param y Posicion y.
	 * @param nivel Nivel Actual
	 * @return Nave jugadora utilizada.
	 */
	public Principal crearNavePrincipal(int x, int y, Nivel nivel) {
		laser l= new laserPequeno(nivel);
		ImageIcon image = new ImageIcon(this.getClass().getResource("/proyectoX/sprites/sprite_exploradora.gif"));
		Principal resultado = new exploradora(10,image, nivel,l);

		resultado.setSize(image.getIconWidth(), image.getIconHeight());
		resultado.setVisible(true);
		return resultado;
	}

	@Override
	/**
	 * Crea el ícono de la habilidad para la nave exploradora.
	 * @param x Posición x.
	 * @param y Posición y.
	 * @return Devuelve el JLabel con el ícono.
	 */
	public JLabel crearIconoHabilidad(int x, int y) {
		ImageIcon imagen = new ImageIcon(this.getClass().getResource("/proyectoX/sprites/icons/habilidad_exploradora.png"));
		JLabel resultado = new JLabel(imagen);
		resultado.setBounds(x, y, imagen.getIconWidth(), imagen.getIconHeight());
		resultado.setVisible(true);
		return resultado;
	}

	@Override
	/**
	 * Crea el ícono del láser para la nave exploradora.
	 * @param x Posición x.
	 * @param y Posición y.
	 * @return Devuelve el JLabel con el ícono.
	 */
	public JLabel crearIconoLaser(int x, int y) {
		ImageIcon imagen = new ImageIcon(this.getClass().getResource("/proyectoX/sprites/icons/laser_exploradora.png"));
		JLabel resultado = new JLabel(imagen);
		resultado.setBounds(x, y, imagen.getIconWidth(), imagen.getIconHeight());
		resultado.setVisible(true);
		return resultado;
	}

	@Override
	/**
	 * Crea el ícono del arma secundario para la nave exploradora.
	 * @param x Posición x.
	 * @param y Posición y.
	 * @return Devuelve el JLabel con el ícono.
	 */
	public JLabel crearIconoArma(int x, int y) {
		ImageIcon imagen = new ImageIcon(this.getClass().getResource("/proyectoX/sprites/icons/arma_exploradora.png"));
		JLabel resultado = new JLabel(imagen);
		resultado.setBounds(x, y, imagen.getIconWidth(), imagen.getIconHeight());
		resultado.setVisible(true);
		return resultado;
	}

	@Override
	/**
	 * Crea el ícono grande de la nave exploradora.
	 * @param x Posición x.
	 * @param y Posición y.
	 * @return Devuelve el JLabel con el ícono.
	 */
	public JLabel crearIconoNave(int x, int y) {
		ImageIcon imagen = new ImageIcon(this.getClass().getResource("/proyectoX/sprites/icons/nave_exploradora.png"));
		JLabel resultado = new JLabel(imagen);
		resultado.setBounds(x, y, imagen.getIconWidth(), imagen.getIconHeight());
		resultado.setVisible(true);
		return resultado;
	}

	@Override
	/**
	 * Crea el ícono de la vida para la nave exploradora.
	 * @param x Posición x.
	 * @param y Posición y.
	 * @return Devuelve el JLabel con el ícono.
	 */
	public JLabel crearIconoVida(int x, int y) {
		ImageIcon imagen = new ImageIcon(this.getClass().getResource("/proyectoX/sprites/icons/vida_exploradora.png"));
		JLabel resultado = new JLabel(imagen);
		resultado.setBounds(x, y, imagen.getIconWidth(), imagen.getIconHeight());
		resultado.setVisible(true);
		return resultado;
	}

}
